Intel Concurrent Collections for Haskell
نویسندگان
چکیده
Intel Concurrent Collections (CnC) is a parallel programming model in which a network of steps (functions) communicate through message-passing as well as a limited form of shared memory. This paper describes a new implementation of CnC for Haskell. Compared to existing parallel programming models for Haskell, CnC occupies a useful point in the design space: pure and deterministic like Strategies, but more explicit about granularity and the structure of the computation, which affords the programmer greater control over parallel performance. We present results on 4, 32, and 48-core machines demonstrating parallel speedups ranging between 7X and 22X on non-trivial benchmarks.
منابع مشابه
Cluster Computing using Intel Concurrent Collections
The Intel Corporation is developing a new parallel software and compiler called Concurrent Collections (CnC) to make programming in parallel easier for the user. CnC provides a system of collections comprised of steps, items, and tags. A CnC user specifies their algorithm in a graph representation using these constructs. Using this graph of dependencies, CnC automatically identifies paralleliza...
متن کاملAn Update on Haskell H/STM
At TRANSACT 2014 we described plans and a preliminary implementation for a hybrid TM for the Glasgow Haskell Compiler. Here we give an update on our work and new performance results on a 72-thread Intel Haswell system showing that hardware transactional memory can improve the performance of Haskell TM at realistic scales. We describe our constant space approach to supporting transaction blockin...
متن کاملLecture 26 : Dataflow Programming with Intel Concurrent Collections
The Concurrent Collections (CnC) model was developed to address the need for making parallel programming accessible to domain experts or non-professional programmers. One approach that has historically addressed this problem is the creation of domain specific languages (DSLs), such as Matlab, R, SQL, and Google’s MapReduce framework that hide the details of parallelism when programming for a sp...
متن کاملMeasuring the Overhead of Intel C++ CnC over TBB for Gauss-Jordan Elimination
The most efficient parallel execution of dense liner algebra algorithms is to build and evaluate the task graph constrained only by the data dependencies between the tasks. Both Intel C++ Concurrent Collections (CnC) and Threading Building Blocks (TBB) libraries allow such task-based parallel programming. In this paper, we first analyze all the three types of data dependencies in the tiled in-p...
متن کاملA Case Study in Coordination Programming: Performance Evaluation of S-Net vs Concurrent Collections
We present a programming methodology and runtime performance case study comparing the declarative data flow coordination language S-NET with Intel’s Concurrent Collections (CnC). As a coordination language S-NET achieves a near-complete separation of concerns between sequential software components implemented in a separate algorithmic language and their parallel orchestration in an asynchronous...
متن کامل